/**
 * 认证类型
 */
export enum EAuthType {
  // 账号密码登录
  Account = 'ACCOUNT',
  // 邮箱登录
  Email = 'EMAIL',
  // 手机号登录
  Phone = 'PHONE',
  // 三方账号登录，如Gitee、Github等
  Social = 'SOCIAL',
  // 微信小程序登录
  Wechat_Mini_Program = 'WECHAT_MINI_PROGRAM',
}
/**
 * 登录基础请求参数
 */
export interface ILoginBaseReq {
  clientId: string
  authType: EAuthType
}
/**
 * 账号密码登录请求参数
 * @param username 用户名
 * @param password 密码
 */
export interface ILoginAccountReq extends ILoginBaseReq {
  authType: EAuthType.Account
  username: string
  password: string
}
/**
 * 邮箱登录请求参数
 * @param email 邮箱
 * @param password 密码
 */
export interface ILoginEmailReq extends ILoginBaseReq {
  authType: EAuthType.Email
  email: string
  password: string
}
/**
 * 手机号登录请求参数
 * @param phone 手机号
 * @param password 密码
 */
export interface ILoginPhoneReq extends ILoginBaseReq {
  authType: EAuthType.Phone
  phone: string
  password: string
}
/**
 * 三方账号登录请求参数
 * @param socialId 三方账号ID，如Gitee、Github等
 *
 */
export interface ILoginSocialReq extends ILoginBaseReq {
  authType: EAuthType.Social
  socialId: string
}
/**
 * 微信小程序登录请求参数
 * @param code 微信小程序登录时，返回的code
 * @param userInfo 微信小程序登录时，用户信息，JSON字符串:{\"nickName\":\"微信用户\",\"avatarUrl\":\"https://wx.qlogo.cn/mmopen/xxx\"}
 * @param encryptedData 微信小程序登录时，加密数据
 * @param iv 微信小程序登录时，加密数据的初始化向量
 */
export interface ILoginWechatMiniProgramReq extends ILoginBaseReq {
  authType: EAuthType.Wechat_Mini_Program
  code: string
  userInfo?: string
  encryptedData?: string
  iv?: string
}
/**
 * 登录响应参数
 * @param token 登录凭证
 * @param tenantId 租户ID
 */
export interface ILoginResp {
  token: string
  tenantId: number
}
